package com.MyDemo.demo.context;

import com.MyDemo.demo.enums.OrderEventsEnum;
import com.MyDemo.demo.strategy.OrderStrategy;

/**
 * 订单处理的状态上下文类，用于管理订单处理策略并执行相应的订单事件。
 */
public class OrderContext {
    // 订单处理策略
    private OrderStrategy strategy;

    /**
     * 构造函数，初始化订单处理策略
     * @param strategy 订单处理策略
     */
    public OrderContext(OrderStrategy strategy) {
        this.strategy = strategy;
    }

    /**
     * 设置订单处理策略
     * @param strategy 新的订单处理策略
     */
    public void setStrategy(OrderStrategy strategy) {
        this.strategy = strategy;
    }

    /**
     * 执行订单处理策略
     * @param event 订单事件
     */
    public void executeStrategy(OrderEventsEnum event) {
        strategy.handle(event);
    }
}